package compresionLZP;


import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

//Clase Base de todos los archivos, los demas implementan este Archivo
public class Archivo {
	
	protected String aRutaArchivo;
	protected RandomAccessFile aArchivo;	

	//Abre el archivo dada la ruta especificada 
	public Archivo(String xRutaArchivo) throws FileNotFoundException{
		aRutaArchivo=xRutaArchivo;
		aArchivo=new RandomAccessFile(aRutaArchivo,"rw");
	}
	
	public Archivo(String xRutaArchivo, boolean eraseFile) throws IOException{
		aRutaArchivo=xRutaArchivo;
		if (eraseFile){
			aArchivo=new RandomAccessFile(aRutaArchivo,"rw");
			aArchivo.setLength(0);
		}
		else
			aArchivo=new RandomAccessFile(aRutaArchivo,"rw");
	}
	
	//Mueve el file pointer al comienzo del archivo
	public void rwArchivo() throws IOException {
		aArchivo.seek(0);
	}
	//Mueve el file pointer al final del archivo
	public void ffArchivo() throws IOException {
		aArchivo.seek(aArchivo.length());
	}
	//Devuelve la posicion del file pointer
	public long getFilePointer() throws IOException {
		return aArchivo.getFilePointer();
	}
	//Devuelve la posicion del end of file 
	public long getOffSetEOF() throws IOException {
		return aArchivo.length();
	}
	//Cierra el archivo	
	public void cerrarArchivo() throws IOException {
		if (aArchivo!=null)
			aArchivo.close();	
	}
}
